package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.TbVisitorUser;
import com.ruoyi.system.domain.TbVisitorVehicle;
import com.ruoyi.system.domain.dto.DtoCheckUser;
import com.ruoyi.system.domain.dto.DtoVehicle;

import java.util.List;

/**
 * 车辆预约信息Mapper接口
 * 
 * @author ruoyi
 * @date 2024-04-10
 */
public interface TbVisitorVehicleMapper 
{
    /**
     * 查询车辆预约信息
     * 
     * @param id 车辆预约信息主键
     * @return 车辆预约信息
     */
    public TbVisitorVehicle selectTbVisitorVehicleById(Long id);

    public TbVisitorVehicle selectTbVisitorVehicleByPlate(String carPlate);

    /**
     * 查询车辆预约信息(By Open ID)
     *
     * @param openId
     * @return 车辆预约信息
     */
    public TbVisitorVehicle selectTbVisitorVehicleByOpenId(String openId);

    /**
     * 查询车辆预约信息(By Flow ID)
     *
     * @param flowId
     * @return 车辆预约信息
     */
    public TbVisitorVehicle selectTbVisitorVehicleByFlowId(String flowId);

    /**
     * 查询车辆预约信息列表
     * 
     * @param tbVisitorVehicle 车辆预约信息
     * @return 车辆预约信息集合
     */
    public List<TbVisitorVehicle> selectTbVisitorVehicleList(DtoVehicle tbVisitorVehicle);

    /**
     * 新增车辆预约信息
     * 
     * @param tbVisitorVehicle 车辆预约信息
     * @return 结果
     */
    public int insertTbVisitorVehicle(TbVisitorVehicle tbVisitorVehicle);

    /**
     * 修改车辆预约信息
     * 
     * @param tbVisitorVehicle 车辆预约信息
     * @return 结果
     */
    public int updateTbVisitorVehicle(TbVisitorVehicle tbVisitorVehicle);

    /**
     * 删除车辆预约信息
     * 
     * @param id 车辆预约信息主键
     * @return 结果
     */
    public int deleteTbVisitorVehicleById(Long id);

    /**
     * 批量删除车辆预约信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbVisitorVehicleByIds(Long[] ids);

    /**
     * 车辆入场查询
     *
     * @param tbVisitorVehicle 车辆预约信息
     * @return 车辆预约信息
     */
    public TbVisitorVehicle selectTbVisitorVehicleLimit(DtoVehicle tbVisitorVehicle);

    /**
     * 删除车辆预约信息(逻辑删除)
     *
     * @param id 车辆预约信息主键
     * @return 结果
     */
    public int deleteLogicTbVisitorVehicleById(Long id);


    /**
     * 查询访客预约信息列表
     *
     * @param tbVisitorUser 访客预约信息
     * @return 访客预约信息集合
     */
    public List<TbVisitorVehicle> checkTbVisitorVehicleList(DtoCheckUser tbVisitorUser);
}
